package pl.com.qapps.unity;

/**
 * @author Jakub Dykowski
 * 
 */
public class UnityException extends RuntimeException {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5531290879387996326L;
	private final boolean impl;

	/**
	 * 
	 */
	public UnityException() {
		this(null, null);
	}

	/**
	 * @param message
	 */
	public UnityException(String message) {
		this(message, null);
	}

	public UnityException(String message, boolean impl) {
		this(message, null, impl);
	}

	/**
	 * @param cause
	 */
	public UnityException(Throwable cause) {
		this(null, cause);
	}

	public UnityException(Throwable cause, boolean impl) {
		this(null, cause, impl);
	}

	/**
	 * @param message
	 * @param cause
	 */
	public UnityException(String message, Throwable cause) {
		this(message, cause, false);
	}

	public UnityException(String message, Throwable cause, boolean impl) {
		super(message, cause);
		this.impl = impl;
	}

	boolean isImplementationError() {
		return impl;
	}
}
